package eval.deploy;


import java.util.List;
import java.util.Map;

import eval.vm.VMIdentifier;
import eval.vm.VirtualMachine;

/**
 * This component is in charge of generating all the demands of the Virtual
 * Machines.
 * */
public interface IDemandManager {

	
	
	 
	//public VMRealDemand getDemandForVM(VMIdentifier virtualMachineId, int tick);
	
	//public VMRealDemand getDemandForVM(VirtualMachine virtualMachine, int tick);
	
	
	public Map<VirtualMachine, Integer> getCPUDemandOfAllVMsAtTick(int tick);
	public Map<VirtualMachine, Integer> getMEMDemandOfAllVMsAtTick(int tick);
	

	public int getCPUDemandOfVmAtTick(VirtualMachine virtualMachine, int tick);
	public int getCpuDemandOfVmAtTick(VMIdentifier virtualMachineID, int tick);
	
	public int getMemDemandOfVmAtTick(VirtualMachine virtualMachine, int tick);
	public int getMEMDemandOfVmAtTick(VMIdentifier virtualMachineID, int tick);
	
	
	public VMRealDemand getRealDemand(VirtualMachine virtualMachine);
	public VMRealDemand getRealDemand(VMIdentifier virtualMachineID);
	double getTotalCpuemandAtTick(int tick);
	public double getCpuemandAtTickOfVmList(int x1, List<VirtualMachine> tmp,int tick);
	
	
	

	


}